﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ElectronicCommerce.Framework.Payment.Contract.DataContract.Common;

namespace ElectronicCommerce.Framework.Payment.Contract.DataContract.History
{
    public class RefundHistory
    {
        public RefundHistory()
        {
            this.TransactionNumber = 0;
            this.SOID = "";
            this.OutSOID = "";
            this.RequestRefundAmount = 0;
            this.FactRefundAmount = 0;
            this.CurrencyCode = CurrencyCode.CNY;
            this.ReasonDesc = "";
            this.RefundDate = DateTime.Now;
            this.ResultType = null;
            this.ResultMessage = "";
        }

        /// <summary>
        /// 流水号
        /// </summary>
        public int TransactionNumber { get; set; }

        /// <summary>
        /// 订单号
        /// </summary>
        public string SOID { get; set; }

        /// <summary>
        /// 网关交易流水号
        /// </summary>
        public string OutSOID { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal RequestRefundAmount { get; set; }

        /// <summary>
        /// 实际退款金额
        /// </summary>
        public decimal FactRefundAmount { get; set; }

        /// <summary>
        /// 币种
        /// </summary>
        public CurrencyCode CurrencyCode { get; set; }

        /// <summary>
        /// 原因描述
        /// </summary>
        public string ReasonDesc { get; set; }

        /// <summary>
        /// 退款日期
        /// </summary>
        public DateTime RefundDate { get; set; }

        /// <summary>
        /// 结果类型
        /// </summary>
        public RefundResultType? ResultType { get; set; }

        /// <summary>
        /// 结果信息
        /// </summary>
        public string ResultMessage { get; set; }
    }
}
